Movement of objects in space is a necessary task in a typical manufacturing environment. Robotics have increasingly been employed to effect the necessary movement. However, when multiple objects are being moved, a potential for interference between the objects exists. An interference exists if the at least two objects share the same space at the same time, such as when the objects have the same coordinates with respect to a common frame of reference.
As modern industrial robots move at considerable velocities, interferences between robots can result in a collision and undesirable damage to the robots and work pieces being handled by the robots. The collisions may lead to costly down time in the manufacturing process. Accordingly, it is desirable to avoid such collisions.
Prior art systems and methods have been used in an attempt to minimize interferences and collisions. However, there are several shortcomings of the prior art systems and methods. Typically, a tool center point (TCP) is only checked relative to a predetermined interference area or “static space”. For multiple robots, it is difficult to directly or effectively prevent the collision or interference thereof. Further, it is difficult to specify an interference space in respect of a static coordinate system for multiple moving robots. Any interference space is not only a function of the robot motion path, but also a function of the motion speed. Difficulty also exists in attempting to handle a deadlock situation when two or more robots request to move to a common space at the same time.
Prior art systems also attempt to prevent a TCP for a robot from colliding in a fixed space relative to its world coordinate system. When multiple robots (with multiple controllers) share common or “interference” spaces during a task execution, each controller has to wait until no robot is in the common spaces. Then the controller can then issue the motion control commands to allow the robot to move. This process is also called a “wait and move” process, which generally increases working cycle time. However, it is difficult to effectively specify an interference space in terms of a fixed coordinate system, because the interference space is not only the function of the robot motion path but also the motion speed. When more than one robot requests to move to a common space at the same time, it creates a deadlock situation where none of the robots can move because they are waiting for one another.
Prior art systems also attempt to model the robot by spheres and cylinders. These systems predict a future location of the robot during motion in real time. Because these systems do not determine the accumulated space occupied by the robot over time, these systems must perform comparison frequently during the robot motion. These systems compare element by element the models of all robots in the workcell. This comparison is very expensive computationally and the cost grows exponentially as the number of robots and elements used to model a robot and tooling is increased. Since the comparison is done real time when an impending collision is detected these systems generally must stop all robots involved in the impending collision and automatic programmed operation must cease. These systems become more difficult when the robots reside on different controllers because they require large amounts of information to be communicated real-time between controllers. Prior art systems also attempt to utilize I/O handshaking mechanism for interference avoidance. In present invention, there is no need for I/O PLC.
One known system and method is disclosed in Assignee's copending International Application No. PCT/US2007/066638, hereby incorporated herein by reference in its entirety. The system and method includes a “dynamic space check” system wherein an efficiency of robot operation is maximized and a potential for interference or collision of multiple robots is minimized. Robots controlled by each controller only work on a user-defined dynamic space, thus avoiding collision. However, the dynamic space check system generally protects a TCP only against a user-defined rectilinear space.
Another known method for avoiding robot collisions is reported in U.S. Pat. No. 5,150,452 to Pollack et al. The method includes creating a collision map containing a desired robot move. The initial position of the desired robot is removed from a “world” map by combining the robot map and the world map in a logical exclusive-OR operation and thereafter combining the collision map and the world map in a local exclusive-OR operation followed by combining the collision map and the world map in a logical inclusive-OR operation in a byte-by-byte manner. A collision is indicated by a difference in any bit position of the inclusive- and exclusive-OR combinations. The method provides a two dimensional x-y projection and one dimensional height for collision detection, but does not allow for three-dimensional, real time collision detection.
A further known method for detecting a collision between a robot and one or more obstacles before it occurs is described in U.S. Pat. No. 5,347,459 to Greenspan et al. The robot is modeled by spheres in a voxelized workspace. Each voxel within the workspace is assigned a value which corresponds to its distance from the closest obstacle. A collision is determined to be imminent if the voxel value at the center of a sphere is less than the radius of other sphere in voxels. The method merely protects a single robot arm, however. The robot is also modeled by spheres only, thereby resulting in insufficient protection of critical process paths of the robots.
There is a continuing need for a system and method for controlling motion interference avoidance for a plurality of robots. Desirably, the system and method provides a three dimensional and real time collision detection, communication of robotic motions to the robotic system in advance, reservation of programmed trajectories without collision, and protection of critical process paths.
Deadlock conditions occur when the programs or tasks are in such a state that continued sequential execution of any of the programs or tasks will result in interference between one or more robots associated with the programs or tasks and that there is no program or task that can proceed in the sequential manner without interference.
U.S. Pat. No. 7,114,157 to Chaffee et al. describes a method to avoid deadlock by acquiring resources in a set order. While this method can avoid deadlock, it provides no capability of allowing operation if the set deadlock-free order has not been determined. Furthermore, it does not allow operation that may be deadlock-free if the requested order is outside the prescribed deadlock-free order.
U.S. Patent Application Publication No. 2009/0326711 to Chang et al. describes a method of utilizing automatic zones to avoid deadlock either automatically or manually. Chang suggests a method of using priority values to prevent deadlock. Chang does not suggest a method of preventing deadlock where priority values are not used.